import { createStore, createLogger } from 'vuex'
// 导入vuex数据持久化插件
import createPersistedState from 'vuex-persistedstate'

// 导入子模块
import cart from './modules/cart'
import user from './modules/user'
import cate from './modules/cate'
// 创建vuex实例并导出
export default createStore({
  // strict: true, // 开启严格模式
  modules: {
    user,
    cart,
    cate
  },
  // 注册插件
  plugins: [
    /**
     * 用法：
     * 1.默认直接调用createPersistedState()->存储的key：vuex，存储所有模块数据
     * 2.实际开发需求：自定义存储的key和按需存储
     * 实现：createPersistedState(
     * {
     *   key：'yourkey',  // 存储的属性名
     *   paths:[...]  // 存储的模块名
     * })
     */
    // 1.数据持久化
    createPersistedState({
      key: 'rabbit-data-t5',
      paths: ['user', 'cart']
    }),
    // 2.调试数据
    createLogger()
  ]
})
